package com.zaoniao.enstudy.domain.repository;

import com.zaoniao.enstudy.domain.entity.Vocabulary;
import com.zaoniao.enstudy.infracore.web.PagedGridResult;

/**
 * 收藏单词词汇表仓储层业务.
 *
 * @author llb
 */
public interface UserVocabularyRepository {

    /**
     * 新增词汇表
     *
     * @param vocabulary 词汇表
     */
    Vocabulary insert(Vocabulary vocabulary);


    /**
     * 修改词汇表名称.
     *
     * @param vocabularyId   词汇表Id
     * @param vocabularyName 词汇表名称
     */
    void updUserVocabulary(Integer vocabularyId, String vocabularyName);

    /**
     * 根据主键删除词汇表.
     *
     * @param vocabularyId 词汇表Id
     */
    void delUserVocabulary(Integer vocabularyId);

    /**
     * 词汇表分页查询.
     *
     * @param userId 用户id
     * @param page   第几页
     * @param size   每页显示数量
     * @return 词汇表列表
     */
    PagedGridResult<Vocabulary> getVocabularyPage(String userId, Integer page, Integer size);

    /**
     * 判断当前用户是否存在同名词汇表
     *
     * @param vocabulary 词汇表信息
     * @return true/false
     */
    boolean checkName(Vocabulary vocabulary);

    /**
     * 检查当前用户是否存在词汇表.
     *
     * @param userId 用户Id
     * @return true/false
     */
    boolean checkCountByUserId(String userId);

}
